package com.sxkiler.demo.easy;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.*;
import com.sxkiler.demo.model.*;

/**
add-digits=各位相加
<p>给定一个非负整数 <code>num</code>，反复将各个位上的数字相加，直到结果为一位数。</p>

<p><strong>示例:</strong></p>

<pre><strong>输入:</strong> <code>38</code>
<strong>输出:</strong> 2 
<strong>解释: </strong>各位相加的过程为<strong>：</strong><code>3 + 8 = 11</code>, <code>1 + 1 = 2</code>。 由于&nbsp;<code>2</code> 是一位数，所以返回 2。
</pre>

<p><strong>进阶:</strong><br>
你可以不使用循环或者递归，且在 O(1) 时间复杂度内解决这个问题吗？</p>
 */
public class addDigits {
    

    class Solution {
        public Integer addDigits(Integer param0) {
            if(param0==0)return 0;
//            String s = String.valueOf(param0);
//            int value = 0;
//            for(int i=0;i<s.length();i++){
//                value += Integer.valueOf(s.charAt(i)+"");
//            }
            if(param0%9==0)return 9;
            return param0%9;
        }
    }

    @Test
    public void test(){
        Solution solution = new Solution();
        /**
        38
        */
        //int [] num1 = new int[]{1,3};
        //int [] num2 = new int[]{2};
//        Assertions.assertEquals(solution.addDigits(38),Integer.valueOf(2));
        Assertions.assertEquals(solution.addDigits(345273245),Integer.valueOf(8));
    }
}

